var express = require('express');
var router = express.Router();
// 引入数据模块
const conn = require('./db/conn')

const jwt = require('jsonwebtoken');
const SECRET_KEY = 'login2025'



/* 登录*/
// 用户登录接口
router.post('/login', function (req, res, next) {
  const { username, password } = req.body;

  // 验证参数
  if (!username || !password) {
    return res.status(400).json({
      code: 400,
      msg: '用户名和密码不能为空',
      data: null
    });
  }

  // 查询用户
  const query = 'SELECT * FROM user WHERE username = ? AND password = ?';
  conn.query(query, [username, password], (error, results) => {
    if (error) {
      console.error('数据库查询错误:', error);
      return res.status(500).json({
        code: 500,
        msg: '服务器内部错误',
        data: null
      });
    }

    if (results.length > 0) {
      // 登录成功后再生成token
      const token = jwt.sign(
        { userId: results[0].id, username: results[0].username }, // 只包含必要信息
        SECRET_KEY,
        { expiresIn: '24h' }
      )
      //'30s' - 30秒
      //'5m' - 5分钟
      //'2h' - 2小时
      //'1d' - 1天
      //'7d' - 7天



      const { username, password, ...userInfo } = results[0]; //对象解构 使用 ...userInfo 收集除 username 和 password 之外的所有其他属性
      // 登录成功
      res.json({
        code: 200,
        msg: '登录成功',
        data: {
          user: userInfo,
          token: token
        }
      });
    } else {
      // 登录失败
      res.json({
        code: 401,
        msg: '用户名或密码错误',
        data: null
      });
    }
  });
});

module.exports = router;
